<?php
namespace Admin\Controller;
use Common\Controller\PublicController;
use Common\Model\UserModel;
use Common\Model\UserTokenModel;

/**
 * Adminlte3后台专用框架模块
 * 
 * @author xiaoyutab<xiaoyutab@qq.com>
 * @version v1.0.0
 * @copyright (c) 2017, xiaoyutab
 * @adtime 2018-05-22 14:52:12
 */
class BashController extends PublicController{
    /**
     * 构造函数，用来判断用户是否登录并且判断是否拥有权限的操作
     */
    public function __construct() {
        parent::__construct();
        if(!session('u_token')){
            if(cookie('u_token')){
                session('u_token', cookie('u_token'));
                $token = new UserTokenModel();
                $uid = $token->check_token(cookie('u_token'));
                if($uid){
                    $user = new UserModel();
                    session('u_info',$user->get_info($uid));
                }
            }
        }
        if(
                !session('u_info') // session是空的
                && !in_array(CONTROLLER_NAME.'/'.ACTION_NAME, C('MENU_CONFIG.ALL_NONE_USER'))
        ){
            return $this->redirect('Login/login');
        } else if(
                !in_array(CONTROLLER_NAME.'/'.ACTION_NAME, C('MENU_CONFIG.ALL_NONE_USER')) // 不在任意不登录用户可访问的列表里
                && !in_array(CONTROLLER_NAME.'/'.ACTION_NAME, C('MENU_CONFIG.ALL_LOGIN_USER')) // 不在所有登录用户可访问的列表里
                && session('u_info') // session不为空【已登录】
                && !check_user_group_ext(CONTROLLER_NAME.'/'.ACTION_NAME,'Admin')// 有权限进行此操作
            ){
            $arr = C('MENU_CONFIG.ALL_LOGIN_USER');
            if(is_array($arr)){
                return $this->error('抱歉，您没有权限进行此操作',U($arr[0]));
            }
            return $this->error('抱歉，您没有权限进行此操作',U('Login/login'));
        }
        $this->wget('adminlte3');
        $this->config_self();// 展开自定义配置项
    }
    
    /**
     * 检测是否是用户组组长
     * @return type
     */
    public function is_leader(){
        if(session('u_info.admin_group') == 1){
            return true;
        }
        return boolval(session('u_info.admin_group_leader'));
    }
    
    /**
     * 设置config中自定义的值
     * @return boolean
     */
    private function config_self(){
        // 自定义Tag分类信息
        C('type_config.TagType',array(
            1 => '案例',// 案例的图片比例是16:9
            2 => '分类',// 无图片，无介绍内容
            3 => '品牌',// 品牌和产品图片是1:1
            4 => '产品',// 品牌和产品图片是1:1
            5 => '首页',// 首页图片要求是16:17，无介绍内容.图标【72x72】
            // 备注：首页的图片在file_link中file_order为99，ICON图标在file_link中的file_order为98
        ));
        C('type_config.ProjectStatus',array(
            99 => '正常上线',
            98 => '删除',
            97 => '保存草稿',
        ));
        return false;
    }
}